﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using YKhoa_Lib.BLL;
namespace ToaThuoc_PAK.Handler
{
    /// <summary>
    /// Summary description for XML_GoiKham
    /// </summary>
    public class XML_GoiKham : IHttpHandler, System.Web.SessionState.IRequiresSessionState
    {
        private ChiTiet_GoiKham ChiTietGK = null;
        private So_GoiKham SoGK = null;
        public void ProcessRequest(HttpContext context)
        {
            string actionType = Factory.emptyNull(context.Request.QueryString["ActionType"]);            
            ChiTietGK = new ChiTiet_GoiKham();
            
            string xmlReturn = "<Root> \n"; 
            switch(actionType)
            {
                case "LoadCTGK":
                    string MaGK = Factory.emptyNull(context.Request.QueryString["MaGK"]);
                    if(!string.IsNullOrEmpty(MaGK))
                        xmlReturn += LoadChiTietGoiKham(int.Parse(MaGK));
                    break;
                case "SaveCTGK":
                    xmlReturn +=  SaveChiTietGoiKham(context);
                    break;
            }
            xmlReturn += "</Root>";
            context.Response.ContentType = "text/xml";
            context.Response.Write(xmlReturn);
        }

        private string LoadChiTietGoiKham(int _maGK)
        {
            string xmlReturn = "";
            List<ChiTiet_GoiKham> lst = ChiTietGK.LayChiTietGoiKham(_maGK);
            foreach(ChiTiet_GoiKham item in lst)
            {
                xmlReturn += "<ChiTietGoiKham MaDV='" + item.MaDV.Trim() + "' " + 
                             "                TenDichVu='" + item.TenDichVu + "' " +
                             "                DonGia='" + item.DonGia.ToString() + "' " +
                             "                MaKhoa='" + item.MaKhoa.ToString() + "' " +
                             "                ></ChiTietGoiKham>";
            }
            return xmlReturn;
        }

        /// <summary>
        /// Lưu sổ chỉ định, chi tiết chỉ định vào trong CSDL
        /// </summary>
        /// <returns></returns>
        private string SaveChiTietGoiKham(HttpContext context) 
        {
            SoGK = new So_GoiKham();            
            string TenGoiKham = Factory.emptyNull(context.Request.QueryString["TenGoiCD"]);
            string MaDV = Factory.emptyNull(context.Request.QueryString["MaDV"]);
            string TenDV = Factory.emptyNull(context.Request.QueryString["TenDV"]);
            bool rs = false;
            string xmlReturn = "";
            if(MaDV != "")
            {
                MaDV = MaDV.TrimEnd('|', ' ');
                TenDV = TenDV.TrimEnd('|', ' ');
                string[] MaDVs = MaDV.Split('|');
                string[] TenDVs = TenDV.Split('|');
                ChiTiet_GoiKham newCTGK = null;
                for(int i = 0; i < MaDVs.Length;i++)
                {
                    newCTGK = new ChiTiet_GoiKham();
                    newCTGK.MaDV = MaDVs[i];
                    newCTGK.TenDichVu = TenDVs[i];
                    SoGK.ChiTietGoiKhams.Add(newCTGK);
                }
                SoGK.TenGoiKham = TenGoiKham;
                SoGK.MaNV = context.Session["mand"].ToString();
                rs = SoGK.LuuSoGoiKham();
            }
            if (rs)
                xmlReturn = "<Message Text='Đã lưu gói chỉ định "+ TenGoiKham +" vào hệ thống'></Message>";
            else
                xmlReturn = "<Message Text='Tạm thời không thể lưu, vui lòng thử lại sau'></Message>";
            return xmlReturn;
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}